A variety of writing systems are used to represent the thousands of written languages in existence today. Some languages, such as English and Korean, use a left-to-right (LTR) writing system, while other languages, such as Persian, use a right-to-left (RTL) writing system. Still other languages are “bidirectional” in that they use a combination of LTR and RTL writing systems; examples include modern Hebrew and Arabic, in which RTL words are often mixed with LTR numbers. Bidirectional text may also arise where LTR and RTL writing systems are used in combination. For example, this sentence, which includes LTR English text and the RTL Arabic word “”, contains bidirectional text. While early computer systems supported only a single writing system and alphabet, such as a LTR writing system based on the Latin alphabet, the Unicode standard now provides detailed rules that govern how bidirectional text is encoded and displayed. In particular, according to the Unicode standard, characters that have an inherent writing order, such as the character “a”, are called “strong” characters. Characters that do not have an inherent writing order, such as most punctuation characters, are called “weak” characters. Software algorithms are used to determine whether weak characters should be associated with a LTR or a RTL writing system, although ambiguities may still result in unintentional display errors. Such errors can be corrected or prevented with nonprinting “marks” that make an enclosed weak character inherit a particular writing direction.